#pragma once
#include "non_copy_able.h"
#include "el_export.h"

namespace el
{
	class COMM_SERVER_EXPORT Mutex :noncopyable
	{
	public:
		Mutex();
		~Mutex();

		void lock();
		void unlock();
	private:
		typedef void* HANDLE;
		HANDLE win_mutex_;
	};

	class COMM_SERVER_EXPORT MutexLockGuard :noncopyable
	{
	public:
		MutexLockGuard(Mutex& mutex);
		~MutexLockGuard();

	private:
		Mutex & mutex_;
	};


}

